using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Data; 
using System.Data.SqlClient; 
using System.Data.SqlTypes; 
using SolucionUtiles; 
using SolucionEntidad; 
namespace SolucionDatos 
{ 
   public class UsuarioDao 
    { 
        private SqlConnection cn; 
        public UsuarioDao(SqlConnection cn) 
        { 
           this.cn = cn; 
        } 
        public void insert(Usuario obj)
        { 
           SqlCommand command = new SqlCommand("INSERT INTO usuario " + 
           "(idUsuario,idPersona,idDepartamento,nombreUsuario,claveUsuario) VALUES" + 
           "(@idUsuario,@idPersona,@idDepartamento,@nombreUsuario,@claveUsuario)", this.cn); 

command.Parameters.Add(new SqlParameter("@idUsuario", obj.idUsuario)); 
command.Parameters.Add(new SqlParameter("@idPersona", obj.idPersona)); 
command.Parameters.Add(new SqlParameter("@idDepartamento", obj.idDepartamento)); 
command.Parameters.Add(new SqlParameter("@nombreUsuario", obj.nombreUsuario)); 
command.Parameters.Add(new SqlParameter("@claveUsuario", obj.claveUsuario)); 
command.ExecuteNonQuery(); 
} 
  		public void update(Usuario obj) 
    	{ 
        	SqlCommand command = new SqlCommand("UPDATE Usuario " + 
			" SET " + 
"idPersona=@idPersona" + 
",idDepartamento=@idDepartamento" + 
",nombreUsuario=@nombreUsuario" + 
",claveUsuario=@claveUsuario" + 
 " WHERE " + 
"idUsuario=@idUsuario" 
,this.cn); 
command.Parameters.Add(new SqlParameter("@idUsuario", obj.idUsuario)); 
command.Parameters.Add(new SqlParameter("@idPersona", obj.idPersona)); 
command.Parameters.Add(new SqlParameter("@idDepartamento", obj.idDepartamento)); 
command.Parameters.Add(new SqlParameter("@nombreUsuario", obj.nombreUsuario)); 
command.Parameters.Add(new SqlParameter("@claveUsuario", obj.claveUsuario)); 
command.ExecuteNonQuery(); 
} 
       public void delete(Usuario obj){ 
SqlCommand command = new SqlCommand("DELETE FROM usuario WHERE "  
 +"idUsuario=@idUsuario" 
, this.cn); 
command.Parameters.Add(new SqlParameter("@idUsuario", obj.idUsuario)); 
command.ExecuteNonQuery(); 
} 
        public Usuario get(Usuario obj) 
{ 
   Usuario record = null; 
    SqlCommand command = new SqlCommand("SELECT idUsuario,idPersona,idDepartamento,nombreUsuario,claveUsuario FROM usuario where " 
 +"idUsuario=@idUsuario" 
, this.cn); 
command.Parameters.Add(new SqlParameter("@idUsuario", obj.idUsuario)); 

    SqlDataReader dr = command.ExecuteReader();
dr.Read(); 
record = new Usuario(); 
if (dr["idUsuario"] == DBNull.Value) { record.idUsuario = SqlInt32.Null; } else { record.idUsuario = (Int32)dr["idUsuario"]; } 
if (dr["idPersona"] == DBNull.Value) { record.idPersona = SqlInt32.Null; } else { record.idPersona = (Int32)dr["idPersona"]; } 
if (dr["idDepartamento"] == DBNull.Value) { record.idDepartamento = SqlInt32.Null; } else { record.idDepartamento = (Int32)dr["idDepartamento"]; } 
if (dr["nombreUsuario"] == DBNull.Value) { record.nombreUsuario = SqlString.Null; } else { record.nombreUsuario = (String)dr["nombreUsuario"]; } 
if (dr["claveUsuario"] == DBNull.Value) { record.claveUsuario = SqlString.Null; } else { record.claveUsuario = (String)dr["claveUsuario"]; } 
this.cn.Close(); 
return record; 
} 
     public List<Usuario> getList() 
{ 
   List<Usuario> list = new List<Usuario>(); 
    SqlCommand command = new SqlCommand("SELECT idUsuario,idPersona,idDepartamento,nombreUsuario,claveUsuario FROM usuario", this.cn); 
    SqlDataReader dr = command.ExecuteReader(); 
    while (dr.Read()) 
    { 
Usuario obj = new Usuario(); 
if (dr["idUsuario"] == DBNull.Value) { obj.idUsuario = SqlInt32.Null; } else { obj.idUsuario = (Int32)dr["idUsuario"]; } 
if (dr["idPersona"] == DBNull.Value) { obj.idPersona = SqlInt32.Null; } else { obj.idPersona = (Int32)dr["idPersona"]; } 
if (dr["idDepartamento"] == DBNull.Value) { obj.idDepartamento = SqlInt32.Null; } else { obj.idDepartamento = (Int32)dr["idDepartamento"]; } 
if (dr["nombreUsuario"] == DBNull.Value) { obj.nombreUsuario = SqlString.Null; } else { obj.nombreUsuario = (String)dr["nombreUsuario"]; } 
if (dr["claveUsuario"] == DBNull.Value) { obj.claveUsuario = SqlString.Null; } else { obj.claveUsuario = (String)dr["claveUsuario"]; } 
list.Add(obj); 
} 
return list; 
} 
} 
} 
